#!/usr/bin/env sh

# 定义不允许修改的文件列表
protected_files=(
  ".gitignore"
  ".npmignore"
  "babel.config.js"
  "index.html"
  "tsconfig.json"
  "vite.config.js"
  ".husky/*"
  "packages/index.ts"
)

# 获取暂存区中所有被修改的文件
modified_files=$(git diff --cached --name-only)

# 检查特定文件是否被修改的函数
check_protected_files() {
  local pattern=$1
  if echo "$modified_files" | grep -E -q "$pattern"; then
    echo "-------------------------------------------------------------------"
    echo "提交失败！以下文件不能被修改。请恢复更改后重试，或联系管理人员。"
    echo "$modified_files" | grep -E "$pattern"
    echo "-------------------------------------------------------------------"
    exit 1
  fi
}

# 检查每个受保护的文件模式
for pattern in "${protected_files[@]}"; do
  check_protected_files "$pattern"
done

npm run check

exit 0
